home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1986 April / 64er_Magazin_86-04_1986_Markt__Technik_de.d64 / listing 5 (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  4KB  |  149 lines

  1. 10 .tab(1,4;in hypra-ass: .li 1,4
  2. 20 .stop$c000;in hypra-ass: .ba $c000
  3. 30 ;*************************************
  4. 40 ; verschachtelte schleifen  anwendung
  5. 50 ; allgemeiner bildschirmrahmen
  6. 60 ;*************************************
  7. 70 ;
  8. 80 ;lagerplatz fuer die zeichen: (hpyra-ass jeweils: .eq code1 = $1b usw.)
  9. 90 .remcode1=$1b;zeichen (NULL) = 4f
  10. 100 .remcode2=$1c;zeichen usr = 77
  11. 110 .remcode3=$1d;zeichen (NULL) = 50
  12. 120 .remcode4=$1e;zeichen fn = 74
  13. 130 .remcode5=$1f;zeichen then = 6a
  14. 140 .remcode6=$20;zeichen (NULL) = 4c
  15. 150 .remcode7=$21;zeichen and = 6f
  16. 160 .remcode8=$22;zeichen sqr = 7a
  17. 170 ;vektoren fuer bildchirm- und farb-ram:
  18. 180 .remscreen=$fb;bildschirmstart
  19. 190 .remcolor=$fd;farbramstart
  20. 200 ;zaehler:
  21. 210 .remhoriz=$23;zaehler fuer horizontale
  22. 220 .remvert=$24;zaehler fuer vertikale
  23. 230 ;der farbcode wird nur im x-register gespeichert
  24. 240 ;
  25. 250 ;definition eines makro: aktuell
  26. 260 ;in hypra-ass stattdessen: .ma aktuell(screen,color)
  27. 270 .verifyaktuell(screen,color)
  28. 280  spc(
  29. 290  cont
  30. 300  dimscreen
  31. 310  nextscreen
  32. 320  forscreen+1
  33. 330  dim#$00
  34. 340  nextscreen+1
  35. 350  spc(
  36. 360  cont
  37. 370  dimcolor
  38. 380  nextcolor
  39. 390  forcolor+1
  40. 400  dim#$00
  41. 410  nextcolor+1
  42. 420  input##$00
  43. 430 .print#;in hypra-ass: .rt
  44. 440 ;
  45. 450 ;nun gehts los:
  46. 460 ;
  47. 470 ;-------------- initialisierung ------------
  48. 480 ;
  49. 490  data#$02;farbcode ins x-register
  50. 500  for#$4f;alle zeichen in die speicher packen
  51. 510  nextcode1
  52. 520  for#$77
  53. 530  nextcode2
  54. 540  for#$50
  55. 550  nextcode3
  56. 560  for#$74
  57. 570  nextcode4
  58. 580  for#$6a
  59. 590  nextcode5
  60. 600  for#$4c
  61. 610  nextcode6
  62. 620  for#$6f
  63. 630  nextcode7
  64. 640  for#$7a
  65. 650  nextcode8
  66. 660  for#$00;lsb bildschirmstart
  67. 670  nextscreen
  68. 680  for#$04;msb bildschirmstart
  69. 690  nextscreen+1
  70. 700  for#$00;lsb farbramstart
  71. 710  nextcolor
  72. 720  for#$d8;msb farbramstart
  73. 730  nextcolor+1
  74. 740  for#39;stellenzahl pro zeile
  75. 750  nexthoriz
  76. 760  for#23;zeilenzahl-2
  77. 770  nextvert
  78. 780  input##$00;zaehler auf null
  79. 790 ;
  80. 800 ;------------ nun kommen die jobs: -------------
  81. 810 ;job 1: beschreiben der oberen zeile
  82. 820  forcode1;1.zeichen links oben
  83. 830  next(screen),y;einschreiben
  84. 840  print#;farbcode
  85. 850  next(color),y;in farbramstelle schreiben
  86. 860  sys;zaehler erhoehen
  87. 870 marke1 forcode2;2.zeichen einladen
  88. 880  next(screen),y;eine kleine schleife
  89. 890  print#
  90. 900  next(color),y;farbram beschreiben
  91. 910  sys
  92. 920  loadhoriz;ist y schon > 38 ?
  93. 930  intmarke1;wenn nicht, weitermachen
  94. 940  forcode3;letztes zeichen obere zeile
  95. 950  next(screen),y;nach rechts oben schreiben
  96. 960  print#
  97. 970  next(color),y;wieder farbcode eintragen
  98. 980  sys
  99. 990 ;das war die erste zeile. nun kommen die seitenlinien
  100. 1000 ;job 2: beschreiben der seiten
  101. 1010 ;
  102. 1020 marke2
  103. 1030 .pokeaktuell(screen,color);aufruf des makro
  104. 1035 ;in hypra-ass: ...aktuell(screen,color)
  105. 1040 ;damit werden die vektoren screen und color aktualisiert
  106. 1050  forcode4;4.zeichen fuer linken rand
  107. 1060  next(screen),y;eintragen
  108. 1070  print#;und den farbcode
  109. 1080  next(color),y;ebenfalls
  110. 1090 marke3 sys;zaehler schnell hochzaehlen
  111. 1100  loadhoriz;ist y schon > 38 ?
  112. 1110  intmarke3;wenn nicht, weiterzaehlen
  113. 1120  forcode5;sonst 5.zeichen fuer rechten rand
  114. 1130  next(screen),y;eintragen
  115. 1140  print#;und farbcode
  116. 1150  next(color),y;in farbram
  117. 1160  sys
  118. 1170  savevert;mitzaehlen der zeilen
  119. 1180  usrmarke2;naechste zeile, wenn noch nicht null
  120. 1190 ;ansonsten sind nun beide seitenlinien vorhanden
  121. 1200 ;job 3: beschreiben der letzten zeile
  122. 1210 ;dazu nochmal makroaufruf zum aktualisieren der vektoren
  123. 1220 .pokeaktuell(screen,color);dies ist der aufruf
  124. 1225 ;in hypra-ass wieder: ...aktuell(screen,color)
  125. 1230 ;nun kommt der job:
  126. 1240  forcode6;6.zeichen links unten
  127. 1250  next(screen),y;einschreiben
  128. 1260  print#;wieder den farbcode
  129. 1270  next(color),y;ins farbram schreiben
  130. 1280  sys;und den zaehler erhoehen
  131. 1290 marke4 forcode7;7.zeichen
  132. 1300  next(screen),y;eintragen. kleine schleife
  133. 1310  print#
  134. 1320  next(color),y;farbram
  135. 1330  sys
  136. 1340  loadhoriz;schon > 38 ?
  137. 1350  intmarke4;wenn nicht, weitermachen
  138. 1360  forcode8;sonst letztes zeichen
  139. 1370  next(screen),y;nach rechts unten schreiben
  140. 1380  print#;und auch den farbcode
  141. 1390  next(color),y;ins farbram eintragen
  142. 1400 ;
  143. 1410 ;damit ist die arbeit getan
  144. 1420 ;--------------- ausgang einfach durch brk (monitor!) ---------
  145. 1430 ;
  146. 1440  or
  147. 1450 ;
  148. 1460 .to1,4;in hypra-ass: .sy 1,4
  149.